Enterprise application data sources take on many different forms, such as, for example, Web Services, BAPI (Business Application Programming Interface), JDBC (Java Database Connectivity), XML (Extensible Markup Language), EDI (Electronic Data Interchange) formats and many others. Because each system is generally a stovepipe application with a specific business purpose, the semantics and structure of corresponding schema typically differ. In a traditional Enterprise Application Integration (EAI) deployment, implementers must understand these semantic differences between systems to successfully integrate across them. Furthermore, the total number of schema will increase as business requirements change.
Currently, developers write transformation code manually, sometimes using a commercially available mapping tool such as webMethods Flow graphical transformation tool, including XSLT (Extensible Stylesheet Language Transformations), or developing custom code. This process is very time consuming and often requires a significant time investment to understand the vast number of source and target systems. Besides the occasional requirements document, it often is the case that very little information about the integration is retained once the solution is deployed.
Given the complexity of transformations required for point-to-point mapping across all source and target schema, deployments often become unmanageable with time. Developers are not able to find transformations for reuse, understand dependencies to safely make a change, and/or determine the provenance of a process flow. As a result, full rewrites are not uncommon when significant change is required. Unfortunately, because that expertise only exists in a developer's head, re-developing transformations often means additional investment to analyze source and target schema when that experience is lost or simply forgotten.
This problem extends to Business Process Management (BPM) as well. Service schema must be mapped into the context of a business process when the function of the service is required to implement the process (e.g., each time they are dragged into a process canvas). Semantic differences and impedance mismatch problems lead to the same kind of maintenance problems that exist with traditional EAI. Furthermore these implicit mappings are not made available for reuse. The net impact is that each service has to be manually mapped into a process every time it is used, regardless of whether a mapping may exist.
The general approaches to EAI and BPM result in a number of further complications and/or drawbacks in terms of transformation management. For example, transformation logic is often tightly coupled to business logic, which reduces the flexibility and reusability of the applications. Data paths and relationships tend to be largely hidden in embedded logic. Semantic inconsistencies and structural impedance mismatch issues reduce the ability for a business to quickly change. This sometimes manifests itself, for example, through the impedance mismatch of data flow during business process development and maintenance. It is also often difficult to distribute the data processing overhead in such environments.
Thus, it will be appreciated that there is a need in the art for systems and/or methods that overcome one or more of these and/or other disadvantages. It also will be appreciated that there is a need in the art for improved transformation management techniques.
An example aspect of certain example embodiments of this invention relates to systems and/or methods operable among and/or between both EAI and BPM environments.
Another example aspect of certain example embodiments relates to techniques for providing suggestive transforms in connection with EAI and/or BPM environments.
Still another example aspect of certain example embodiments relates to extracting design-time encoding data and storing the same as metadata when a process and/or transform is defined, capturing and/or managing runtime data and also storing the same as metadata when the process or transform is implemented, and suggesting one or more already-existing transformation chains for use in accomplishing at least a part of a new process and/or transform and/or a similar process or transform based on the metadata and/or a heuristic applied thereto.
In certain example embodiments of this invention, a method of suggesting a transform for use in enterprise application integration (EAI) and business process management (BPM) environments is provided. At least one predefined EAI transform and/or BPM process flow is provided. A shared storage location configured to hold data corresponding to extracted design-time and runtime data extracted from the at least one predefined EAI transform and/or BPM process flow during encoding and runtime, respectively, is provided. A new EAI transform and/or BPM process flow is created. During the creating of the new EAI transform and/or BPM process flow, a similar predefined EAI transform and/or BPM process flow for use in connection with the new EAI transform and/or BPM process flow is located. The similar predefined EAI transform and/or BPM process flow is stored in the shared storage location and is located based on a search strategy. The new EAI transform and/or BPM process flow is capable of being executed within both of the EAI and/or BPM environments.
In certain example embodiments, a system for suggesting a transform for use in enterprise application integration (EAI) and business process management (BPM) environments is provided. A transform storage location storing program logic corresponding to at least one predefined EAI transform and/or BPM process flow is provided. A shared storage location is configured to hold extracted data corresponding to design-time and runtime data extracted from the at least one predefined EAI transform and/or BPM process flow during encoding and runtime, respectively. Transform creating program logic for creating a new EAI transform and/or BPM process flow is provided. There is provided suggestive program logic for locating, during the creating of the new EAI transform and/or BPM process flow, a similar predefined EAI transform and/or BPM process flow for use in connection with the new EAI transform and/or BPM process flow, with the similar predefined EAI transform and/or BPM process flow being stored in the shared storage location and being located based on a search strategy. The new EAI transform and/or BPM process flow is capable of being executed within both of the EAI and/or BPM environments.
In certain example embodiments, a suggestive transform engine for suggesting a transform for use in enterprise application integration (EAI) and business process management (BPM) environments is provided. Programmed logic circuitry is provided for locating, based on a search strategy, during user creation of a new EAI transform and/or BPM process flow, a similar predefined EAI transform and/or BPM process flow for use in connection with the new EAI transform and/or BPM process flow in a shared storage location comprising metadata corresponding to design-time and runtime data extracted from the at least one predefined EAI transform and/or BPM process flow during encoding and runtime, respectively. The new EAI transform and/or BPM process flow is capable of being executed within both of the EAI and/or BPM environments.
In certain example embodiments, a method of suggesting a transform for use in first and second integration environments is provided. At least one predefined transform is defined for the first and/or second integration environments. A shared storage location is configured to hold data corresponding to extracted design-time and runtime data extracted from the at least one predefined transform during encoding and runtime, respectively. A new transform is created. During the creating of the new transform, a similar predefined transform is located for use in connection with the new transform, the similar predefined transform being stored in the shared storage location and being located based on a search strategy. The new transform is capable of being executed within both of the first and/or second integration environments.
These aspects and example embodiments may be used separately and/or applied in various combinations to achieve yet further embodiments of this invention.